package com.qf.driver.mqtt.handler;

import org.springframework.integration.annotation.MessagingGateway;
import org.springframework.integration.mqtt.support.MqttHeaders;
import org.springframework.messaging.handler.annotation.Header;

/**
 * @author 千锋健哥
 */
@MessagingGateway(defaultRequestChannel = "mqttOutputChannel")
public interface MqttSendHandler {

    /**
     * 发送指令
     * @param data  json格式指令
     */
    public void sendMqtt(String data);

    /**
     * 发送指令
     * @param qos   mqtt的qos级别
     * @param data json格式指令
     */
    public void sendMqtt(@Header(MqttHeaders.QOS) Integer qos, String data);

    /**
     * 发送指令
     * @param topic   发送到emqx中的topic主题
     * @param data      json格式指令
     */
    public void sendMqtt(@Header(MqttHeaders.TOPIC) String topic, String data);

    /**
     * 发送指令
     * @param qos   mqtt的qos级别
     * @param data json格式指令
     */
    public void sendMqtt(@Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) Integer qos, String data);
}
